﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Tilver.ConsoleTest.Model
{
    /*
    DIP是一种 软件设计原则，它仅仅告诉你两个模块之间应该如何依赖，但是它并没有告诉如何做。
    IoC则是一种 软件设计模式，它告诉你应该如何做，来解除相互依赖模块的耦合。
    控制反转（IoC），它为相互依赖的组件提供抽象，将依赖（低层模块）对象的获得交给第三方（系统）来控制，即依赖对象不在被依赖模块的类中直接通过new来获取。
    
    依赖倒置原则（DIP）：一种软件架构设计的原则（抽象概念）。
    控制反转（IoC）：一种反转流、依赖和接口的方式（DIP的具体实现方式）。
    依赖注入（DI）：IoC的一种实现方式，用来反转依赖（IoC的具体实现方式）。
    IoC容器：依赖注入的框架，用来映射依赖，管理对象创建和生存周期（DI框架）。
     * 
     * 
     * 软件设计原则：原则为我们提供指南，它告诉我们什么是对的，什么是错的。它不会告诉我们如何解决问题。
     * 它仅仅给出一些准则，以便我们可以设计好的软件，避免不良的设计。一些常见的原则，比如DRY、OCP、DIP等。
     * 软件设计模式：模式是在软件开发过程中总结得出的一些可重用的解决方案，它能解决一些实际的问题。一些常见的模式，比如工厂模式、单例模式等等。
     */
}
